package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 门禁事件
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_event")
public class HikDoorEvent {

	/**
	 * 事件ID
	 */
	@TableId(value = "event_id", type = IdType.AUTO)
	private Long eventId;

	/**
	 * 人员ID
	 */
	@TableField(value = "person_id", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "personId不能为空")
	private Long personId;

	/**
	 * 人员姓名
	 */
	@TableField(value = "person_name", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "personName不能为空")
	private String personName;

	/**
	 * 部门ID
	 */
	@TableField(value = "dept_id", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "deptId不能为空")
	private Long deptId;

	/**
	 * 部门名称
	 */
	@TableField(value = "dept_name", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "deptName不能为空")
	private String deptName;

	/**
	 * 卡号
	 */
	@TableField(value = "card_no", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "cardNo不能为空")
	private String cardNo;

	/**
	 * 门禁点ID
	 */
	@TableField(value = "door_id", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "doorId不能为空")
	private Long doorId;

	/**
	 * 门禁点名称
	 */
	@TableField(value = "door_name", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "doorName不能为空")
	private String doorName;

	/**
	 * 设备ID
	 */
	@TableField(value = "device_id", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "deviceId不能为空")
	private Long deviceId;

	/**
	 * 设备名称
	 */
	@TableField(value = "device_name", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "deviceName不能为空")
	private String deviceName;

	/**
	 * 事件时间
	 */
	@TableField(value = "event_time", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "eventTime不能为空")
	private LocalDateTime eventTime;

	/**
	 * 事件类型码
	 */
	@TableField(value = "event_type", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "eventType不能为空")
	private String eventType;

	/**
	 * 事件名称
	 */
	@TableField(value = "event_name", insertStrategy = FieldStrategy.NOT_NULL)
	@NotNull(message = "eventName不能为空")
	private String eventName;

	/**
	 * 抓拍图片URL
	 */
	@TableField(value = "pic_url", insertStrategy = FieldStrategy.NOT_NULL)
	private String picUrl;

	/**
	 * 抓拍图片BASE64
	 */
	@TableField(value = "pic_data", insertStrategy = FieldStrategy.NOT_NULL)
	private String picData;

	/**
	 * 备注信息
	 */
	@TableField(value = "info", insertStrategy = FieldStrategy.NOT_NULL)
	private String info;

}
